package com.lottery.material.service.admin.circle;

import com.lottery.material.pojo.circle.CircleMemberInfo;
import com.lottery.material.pojo.page.Page;
import com.lottery.material.pojocustom.circle.CircleMemberInfoCustom;

import java.util.List;

/**
 * Description：圈子成员服务接口
 * Created by 朱正磊 on 2019-04-13 15:34
 */
public interface CircleMemberInfoService {

    /**
     * description：新增一条数据
     * user 朱正磊
     * time 2019-04-20 15:14
     * @param circleMemberInfo 对象
     * @return 返回持久化操作数据库状态值
     */
    Integer add(CircleMemberInfo circleMemberInfo);

    /**
     * description：根据主键物理删除
     * user 朱正磊
     * time 2019-04-20 15:13
     * @param id 主键
     * @return 返回持久化操作数据库状态值
     */
    Integer deleteById(Integer id);

    /**
     * description：根据主键查询唯一数据
     * user 朱正磊
     * time 2019-04-20 15:15
     * @param id 主键
     * @return 返回唯一数据
     */
    CircleMemberInfo findById(Integer id);

    /**
     * description：根据主键修改一条数据
     * user 朱正磊
     * time 2019-04-20 15:16
     * @param circleMemberInfo 对象
     * @return 返回持久化操作数据库状态值
     */
    Integer updateById(CircleMemberInfo circleMemberInfo);

    /**
     * description：根据用户id查询圈子成员列表
     * user 朱正磊
     * time 2019-04-22 15:11
     * @param userId 用户ID
     * @return 返回用户id查询圈子成员列表
     */
    List<CircleMemberInfo> findByUserId(String userId);

    /**
     * description：根据圈子ID和圈内等级查询圈子成员列表
     * user 朱正磊
     * time 2019-04-22 15:57
     * @param circleId 圈子ID
     * @param rank 圈内等级
     * @return 返回圈子成员列表
     */
    List<CircleMemberInfo> findByCircleIdAndRank(Integer circleId, Integer rank);

    /**
     * description：查询扩展类分页列表
     * user 朱正磊
     * time 2019-04-17 17:01
     * @param page 分页对象
     * @return 返回扩展类分页列表数据
     */
    List<CircleMemberInfoCustom> findCustomListPage(Page page);

    /**
     * description：根据主键查询唯一扩展类数据
     * user 朱正磊
     * time 2019-04-17 17:03
     * @param id 主键
     * @return 返回唯一扩展类数据
     */
    CircleMemberInfoCustom findCustomById(Integer id);

    /**
     * description：批量禁言
     * user 朱正磊
     * time 2019-04-24 16:37
     * @param ids 主键集合(多个id以,进行拼接)
     * @return 返回持久化操作数据库状态值
     */
    Integer updateBatchBan(String ids);

    /**
     * description：批量取消禁言
     * user 朱正磊
     * time 2019-04-24 16:37
     * @param ids 主键集合(多个id以,进行拼接)
     * @return 返回持久化操作数据库状态值
     */
    Integer updateBatchNotBan(String ids);

}
